/*
 ============================================================================
 Name        : hev-sender.h
 Author      : Heiher <admin@heiher.info>
 Version     : 0.0.2
 Copyright   : Copyright (c) 2010 everyone.
 Description : Linkage 802.1x for Unix-like operating system.
 ============================================================================
 */

#ifndef __HEV_SENDER_H__
#define __HEV_SENDER_H__

#include <gio/gio.h>

G_BEGIN_DECLS

#define HEV_TYPE_SENDER	(hev_sender_get_type())
#define HEV_SENDER(obj)	(G_TYPE_CHECK_INSTANCE_CAST((obj), HEV_TYPE_SENDER, HevSender))
#define HEV_IS_SENDER(obj)	(G_TYPE_CHECK_INSTANCE_TYPE((obj), HEV_TYPE_SENDER))
#define HEV_SENDER_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST((klass), HEV_TYPE_SENDER, HevSenderClass))
#define HEV_IS_SENDER_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE((klass), HEV_TYPE_SENDER))
#define HEV_SENDER_GET_CLASS(obj)	(G_TYPE_INSTANCE_GET_CLASS((obj), HEV_TYPE_SENDER, HevSenderClass))

typedef struct _HevSender HevSender;
typedef struct _HevSenderClass HevSenderClass;

struct _HevSender
{
	GObject parent_instance;
};

struct _HevSenderClass
{
	GObjectClass parent_class;
};

GType hev_sender_get_type(void);

GObject * hev_sender_new(GCancellable * cancellable, GError ** error, gchar * interface);
gboolean hev_sender_send_find_server(HevSender * self, guchar * local_mac);
gboolean hev_sender_send_account_name(HevSender * self, guchar * local_mac,
		guchar * remote_mac, guint8 id, gchar * name);
gboolean hev_sender_send_account_passwd(HevSender * self, guchar * local_mac,
		guchar * remote_mac, guint8 id, guint8 type, guint8 * pkey, gchar * passwd);
gboolean hev_sender_send_logout(HevSender * self, guchar * local_mac, guchar * remote_mac);

G_END_DECLS

#endif /* __HEV_SENDER_H__ */

